iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 21
0
自我挑戰組

Android的學習歷程系列 第 21

[Day 21]Android-SharedPreferences的基本使用方式(二)

  • 分享至 

  • xImage
  •  

一般使用SharedPreferences時如果沒有特別的想法,可能會像上次一樣直接使用它,但這樣如果在很多地方使用到,可能會造成許多地方有重複的程式碼,在SharedPreferences的時候我通常會這樣使用。

首先創建一個interface,之後會再去實作它,先在裡面放入符合自己需求的格式。

public interface PreferencesHelper {

    boolean getBooleanData();

    void setBooleanData(boolean booleanData);

    String getStringData();

    void setStringData(String stringData);

    Long getLongData();

    void setLongData(Long longData);

    Integer getIntegerData();

    void setIntegerData(Integer integerData);
}

接下來再新增一個class,來實作剛才的各個方法。

public class PreferencesHelperImp implements PreferencesHelper {
    private String SharedPreferencesKey = "SharedPreferencesKey";
    private final SharedPreferences mSharedPreferences;

    private static final String PREF_KEY_BOOLEAN_DATA = "PREF_KEY_BOOLEAN_DATA";
    private static final String PREF_KEY_STRING_DATA = "PREF_KEY_STRING_DATA";
    private static final String PREF_KEY_LONG_DATA = "PREF_KEY_LONG_DATA";
    private static final String PREF_KEY_INTEGER_DATA = "PREF_KEY_INTEGER_DATA";

    public PreferencesHelperImp(Context context) {
        mSharedPreferences = context.getSharedPreferences(SharedPreferencesKey, Context.MODE_PRIVATE);
    }

    @Override
    public boolean getBooleanData() {
        return mSharedPreferences.getBoolean(PREF_KEY_BOOLEAN_DATA, true);
    }

    @Override
    public void setBooleanData(boolean booleanData) {
        mSharedPreferences.edit().putBoolean(PREF_KEY_BOOLEAN_DATA, booleanData).apply();
    }

    @Override
    public String getStringData() {
        return mSharedPreferences.getString(PREF_KEY_STRING_DATA, "");
    }

    @Override
    public void setStringData(String stringData) {
        mSharedPreferences.edit().putString(PREF_KEY_STRING_DATA, stringData).apply();
    }

    @Override
    public Long getLongData() {
        return mSharedPreferences.getLong(PREF_KEY_LONG_DATA, 0);
    }

    @Override
    public void setLongData(Long longData) {
        mSharedPreferences.edit().putLong(PREF_KEY_LONG_DATA, longData).apply();
    }

    @Override
    public Integer getIntegerData() {
        return mSharedPreferences.getInt(PREF_KEY_INTEGER_DATA, 0);
    }

    @Override
    public void setIntegerData(Integer integerData) {
        mSharedPreferences.edit().putInt(PREF_KEY_INTEGER_DATA, integerData).apply();
    }
}

最後就能夠在各個地方去使用了

//在需要使用的地方先宣告剛才的class
public PreferencesHelperImp preferencesHelperImp;
//在使用前先new出來,並放入context
preferencesHelperImp = new PreferencesHelperImp(getApplicationContext());
//最後是使用的地方
preferencesHelperImp.setBooleanData(false);
Log.e("my data",""+preferencesHelperImp.getBooleanData());
preferencesHelperImp.setBooleanData(true);
Log.e("my data",""+preferencesHelperImp.getBooleanData());

到這邊便完成了SharedPreferences的部分。


上一篇
[Day 20]Android-SharedPreferences的基本使用方式
下一篇
[Day 22]Android-MediaPlayer與AudioManager的使用
系列文
Android的學習歷程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言